import java.util.Vector;

/**
 * Title: 矢量操作< Description: 演示一个矢量（Vector）的基本操作 Filename: Java_Vector.java
 */
public class Java_Vector {
	/*
	 *方法说明：生成一个4*4的二维Vector，供使用。输入参数：输出变量：Vector其它说明：
	 */
	public Vector<Object> buildVector() {
		Vector<Object> vTemps = new Vector<Object>();
		for (int i = 0; i < 4; i++) {
			Vector<Object> vTemp = new Vector<Object>();
			for (int j = 0; j < 4; j++) {
				vTemp.addElement("Vector(" + i + ")(" + j + ")");
			}
			vTemps.addElement(vTemp);
		}
		return vTemps;
	}

	/*
	 *方法说明：插入数据输入参数：Vector vTemp 待插入的数据对象输入参数：int iTemp 插入数据的位置
	 *输入参数：Object oTemp 插入数据值输出变量：Vector 结果
	 *其它说明：如果插入位置超出实例实际的位置将返回null
	 */
	public Vector<Object> insert(Vector<Object> vTemp, int iTemp, Object oTemp) {
		if (iTemp > vTemp.size()) {
			print("数据超界!");
			return null;
		} else {
			vTemp.insertElementAt(oTemp, iTemp);
		}
		return vTemp;
	}

	/*
	 *方法说明：移除数据输入参数：Vector vTemp 待删除矢量对象输入参数：int iTemp 删除数据的位置
	 *输出变量：Vector其它说明：如果删除超界的数据，将返回null
	 */
	public Vector<Object> delete(Vector<Object> vTemp, int iTemp) {
		if (iTemp > vTemp.size()) {
			print("数据超界!");
			return null;
		} else {
			vTemp.removeElementAt(iTemp);
		}
		return vTemp;
	}

	/*
	 *方法说明：修改数据输入参数：Vector vTemp 待修改矢量对象输入参数：int iTemp 修改数据的位置
	 *输入参数：Object oTemp 修改数据值输出变量：Vector其它说明：如果修改位置超界的数据，将返回null
	 */
	public Vector<Object> updata(Vector<Object> vTemp, int iTemp, Object oTemp) {
		if (iTemp > vTemp.size()) {
			print("数据超界!");
			return null;
		} else {
			vTemp.setElementAt(oTemp, iTemp);
		}
		return vTemp;
	}

	/*
	 *方法说明：输出信息输入参数：String sTemp 输出信息名称输入参数：Object oTemp 输出信息值
	 *返回变量：无
	 */
	public void print(String sTemp, Vector<Object> oTemp) {
		System.out.println(sTemp + "数据：");
		this.print(oTemp);
	}

	/**
	 *
	 * 方法说明：打印输出（过载）
	 * 输入参数：Object oPara 输出的对象
	 * 返回类型：无
	 */
	public void print(Object oPara) {
		System.out.println(oPara);
	}

	/**
	 *
	 * 方法说明：打印输出（过载）
	 * 输入参数：Vector vPara 显示输出矢量对象
	 * 返回类型：无
	 */
	public void print(Vector<Object> vPara) {
		for (int i = 0; i < vPara.size(); i++) {
			System.out.println(vPara.elementAt(i));
		}
	}

	/**
	 *
	 * 方法说明：主方法，程序入口
	 * 输入参数：String[] args
	 * 返回类型：无
	 */
	public static void main(String[] args) {
		Java_Vector ov = new Java_Vector();
		Vector<Object> vTemp = ov.buildVector();
		ov.print("vTemp0", vTemp);
		Vector<Object> vResult = ov.insert(vTemp, 2, "添加的数据");
		ov.print("vResult", vResult);
		Vector<Object> vResultup = ov.updata(vResult, 2, "修改的数据");
		ov.print("vResultmp", vResultup);
		Vector<Object> vResultnow = ov.delete(vResultup, 2);
		ov.print("vResultnow", vResultnow);
	}
}